<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>84_字符串的方法.html</title>
    <script type="text/javascript">
        //创建一个字符串
        var str = "Hello World";

        /*
        * 在底层字符串是以字符数组的形式保存的
          ["H","e","l"]
        */
        /**
         * length属性
         *  可以用来获取字符串的长度
         *  
        */
        // console.log(str.length);
        console.log(str[0]);

        /**
         * charAt()
         *  - 可以返回指定位置的字符
         *  - 根据索引获取指定的字符
        */
        console.log(str.charAt(4));

        /**
         * charCodeAt()
         *  - 返回指定位置的字符的Integer值（0-65535），字符编码（Unicode）
        */  
        console.log(str.charCodeAt(4));

        /**
         * String.fromCharCode()
         *  - 静态方法：根据uncode编码返回字符 111 -> o
        */
        console.log(String.fromCharCode(111));

        /**
         * concat()
         *  - 用来连接多个字符串
         *  - 和+号类似效果
         *  - 不会修改原始的字符串
        */
        console.log(str.concat("你好","再见"));
        console.log(str);

        /**
         * 可以检索一个字符串在其中的位置
         *  - 如果找得到，则返回第一次出现的索引位置
         *  - 如果找不到，则返回-1
         * indexOf(searchString)
         * indexOf(searchString, position)
         *  - 第二个参数position表示从哪个索引的位置上开始查找
         * 
         * lastIndexOf(searchString)
         * lastIndexOf(searchString, position)
         *  - 与indexOf类似，只是从后往前找
         *  
        */
        str = "Hello HWorld";
        console.log(str.indexOf("H"));
        console.log(str.indexOf("H",));

        console.log(str.lastIndexOf("H"));

        /**
         * slice()
         *  - 可以从字符串中截取指定的内容
         *  - 不会影响原字符串，而是将截取到的内容返回
         *  - 参数：
         *      1.第一个参数，开始位置的索引（包含开始位置）
         *      2.第二个参数，结束位置的索引（不包含结束位置）
         *          如果省略第二个参数，则将截取到字符串最后
        */
        str = "abcdefghijk";
        str.slice(0,2);
        console.log(str.slice(0,2));

        /**
         * substring()
         *  - 和slice()方法类似
         *  - 不同点：
         *      第二个参数如果为负数，则自动调整为0
         *      并且如果第二个参数小于第一个参数，则自动会交换调整参数
        */
        console.log(str.substring(2,0));
        console.log(str.substring(2,-1));

        /**
         * split()
         *  - 可以将一个字符串拆分成数组
         *  
        */
        str = "hello,world";
        const chars = str.split(',');
        console.log(chars[1]);

        /**
         * toUpperCase() 转换成大写 
         * toLowerCase() 转换成小写
        */
        console.log(str.toUpperCase());
        console.log(str.toLowerCase());
        console.log(str);

    </script>
</head>
<body>
    
</body>
</html>